package server.container;

import server.life.Lifecycle;

/**
 * 引擎容器
 * 表示整个Catalina的Servlet引擎，⽤来管理多个虚拟站点，⼀个Service最多只能有⼀个Engine，
 * 但是⼀个引擎可包含多个Host
 *
 * @author caiwei
 * @date 2020-10-11 23:56
 */
public interface Engine extends Lifecycle {

    /**
     * 获取服务容器
     * @return
     */
    Service getService();

    /**
     * 设置服务容器
     * @param service
     */
    void setService(Service service);

    /**
     * 设置Host
     * @param hosts
     */
    void setHosts(Host []hosts);

    /**
     * 获取host列表
     * @return
     */
    Host[] getHosts();
}
